home *** CD-ROM | disk | FTP | other *** search
/ By Popular Request 2.0 / By Popular Request 2.0 (Arsenal Computer).ISO / amiga_4 / logsts34.lha / Logstats.doc < prev    next >
Text File  |  1994-12-09  |  42KB  |  1,072 lines

  1.  
  2.  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  3.  
  4.                           The LogStats Package
  5.  
  6.                       (Version 3.3 was 07-Nov-91)
  7.  
  8.                         Version 3.4 - 09-Dec-94
  9.  
  10.                       This version is in GFA-BASIC
  11.                          compiler version 3.51E
  12.  
  13.                  Another Metro Utility from Peter Deane
  14.  
  15.  
  16.  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  17.  
  18.  
  19. ----------------------------------------------------------------------------
  20. Copyright Status:
  21. ----------------------------------------------------------------------------
  22.  
  23. The copyright as a Metro Utility is held by me.  This package may be
  24. re-distributed electronically, provided a profit is not made by such
  25. distribution.  If a profit is made, then the proceeds MUST be forwarded
  26. to me.
  27.  
  28. This package used to be shareware with a 30 day evaluation period and a
  29. $5 registration fee.  I'll waive the requirement for the fee to be paid,
  30. however, I WOULD appreciate some support for what is, after all, a very
  31. handy utility for your BBS.  If you want to send me money, flowers,
  32. chocolates or beer (forget it, just send the money, I'm overweight as it
  33. is, the flowers will die, and I'm a teatotaller) feel free.  In fact,
  34. feel obligated.
  35.  
  36. ----------------------------------------------------------------------------
  37. Contact Me:
  38. ----------------------------------------------------------------------------
  39.  
  40.         Peter Deane
  41.  
  42.         FidoNet:   3:622/401        Postal: PO Box 228
  43.         GlobalNet: 54:6101/401              Swansea  NSW  2281
  44.         AmigaNet:  41:200/401               AUSTRALIA
  45.  
  46.  
  47.         Or call the BBS:   from O/S   +61-49-72-1647
  48.         (24 hrs)           from Aust  (049) 72-1647
  49.  
  50.  
  51. ----------------------------------------------------------------------------
  52. What Does It Do?
  53. ----------------------------------------------------------------------------
  54.  
  55. The Logstats Package consists of three programs:  Logstats, which must
  56. be run in every midnight event to collate the stats and produce a data
  57. file; StatDoor, which is the door that is run on your BBS to present the
  58. data items in a meaningful way; and the LogstatsEd, which is used for
  59. generating a blank Logstats file, and for maintenance on the stats
  60. themselves, once you've been running it for a while.
  61.  
  62. Stats are collected for these BBS activities:
  63.  
  64.   * Calls
  65.   * Public Messages
  66.   * Private Messages
  67.   * Downloads
  68.   * Uploads
  69.   * Door Entrances
  70.  
  71. The door then allows one to access the file and get reports printed
  72. based on the top 15 users in each category, overall unsorted figures for
  73. each category, ratios of each category per call, Public Messages per
  74. Private Message, Uploads per Download, Downloads per Upload, any
  75. individual user's figures, a full database display of all statistics and
  76. a Top 50 Users Chart.  (Go into the door and check it out if that was
  77. confusing)
  78.  
  79. The door has full ANSI graphics, plenty of IBM graphics characters and
  80. fully hot-keyed selections.
  81.  
  82. All versions of the Stats Door are completely compatible with the same
  83. data file - viz.  BBS:BBSFILES/logstats
  84.  
  85.  
  86. ----------------------------------------------------------------------------
  87. Revision Notes:
  88. ----------------------------------------------------------------------------
  89.  
  90. This door has seen quite a few revisions since its first inception as my
  91. third Metro door.  Conversion from one version to another is NOT a
  92. headache.  Please read these notes if you are going from one version to
  93. another.
  94.  
  95. If you're setting up LogStats for the first time, skip to the next
  96. section entitled "Files in the archive".  Don't get confused by the
  97. following info for revision upgrades.  I've left it in these docs mainly
  98. for historical purposes.
  99.  
  100.  
  101. Version 3.3 --> 3.4
  102. -------------------
  103.  
  104. This is a new version over three years since the last one, released
  105. especially for the OzMetro BBS package.  This one no longer reads the
  106. s:Metro.config file (preferring the OzMetro s:Metro.cfg file instead),
  107. automates removal of the old log file, and adds a "Records for this BBS"
  108. function added originally by Phillip Eastham to my (personal) version,
  109. but I lost the source for it.  The implementation is the same as Phill's
  110. to be backwards compatible, but the code is now mine.  I wonder how
  111. similar it would be?
  112.  
  113. The door now ALWAYS comes to the front and makes itself active when run
  114. from the BBS.  Not enough time for a keyword.  Later...
  115.  
  116. Users of the OLD 3.3 version of LogStats should re-do the script that
  117. runs LogStats.  The removal of the old log is now done by the program
  118. itself, so any old "cat" commands will have to be removed from your
  119. scripts.  It means a big streamlining of things, so please read the
  120. section in these docs outlining the midnight script.
  121.  
  122. Also fixed a bug in the LogstatsED program where hiuser and oldhiuser
  123. numbers are different (fixed in the door and the logstats program back
  124. in V 3.3 - but not the editor).
  125.  
  126.  
  127. Version 3.2 --> 3.3
  128. -------------------
  129.  
  130. A bug was fixed in the door where if your hiuser and oldhiuser numbers
  131. were different, the door would bomb out while trying to read in the
  132. stats figures (well the last non-existant figure, anyway)!
  133.  
  134. By the way, I forgot to change the version number and date in the new
  135. door program when I sent the StatDoor33 update revision off to the USA.
  136. It still reports V 3.2.  The door in THIS archive is the same, but has
  137. the correct date and version number.
  138.  
  139. The real way to tell 3.2 & 3.3 apart is that when loading the figures,
  140. 3.2 will say 'We have XXX users on the system', and 3.3 will add after
  141. it 'We have stats on XXX of them.' You have to be quick to catch it if
  142. you only have 100 or so users - it loads pretty damn quick.  So if your
  143. door says 'We have stats on XXX of them', it's 3.3 for sure!
  144.  
  145. A new feature was added to the midnight generator program to get a
  146. 'Yesterday on this BBS' summary of the day's activities which you can
  147. easily put up as a textfile.  See the section on the midnight generator
  148. program (ie Logstats.run) to see how to do this.
  149.  
  150. The editor is still version 3.2.  No changes needed (or found - I don't
  151. use this all that much, you know).
  152.  
  153.  
  154. Version 3.0 --> 3.2
  155. -------------------
  156.  
  157. This release has new executables for all three components.
  158.  
  159. The Editor/Generator (LogstatsEd) has been completely re-written in
  160. GFA-BASIC and now is amiga-tised complete with menus and requestors and
  161. the like.  Please use it, it's so much faster and more reliable than the
  162. old one in AC-BASIC.  Besides, it's a lot easier to use!
  163.  
  164. The door has been updated ever so slightly.  What I did was have a good
  165. look at how it would be running on an NTSC system (640*200) and scored a
  166. few extra display lines in a couple of places.  The door will also open
  167. differently.  If the caller is a local login, the screen is pushed to
  168. the front and the window activated.  If, however, a remote caller enters
  169. the door, the only sign you'll get is a very small flash on your local
  170. console.  The window is NOT made active - so you can keep working at
  171. what you're doing without a mad rush for the mouse - and the screen is
  172. quickly pushed to the very rear.  To access the door when a remote user
  173. is online, simply click your screen gadgets to bring StatDoor forward
  174. and activate the window by clicking in it.
  175.  
  176. The door now has error-checking.  It doesn't do much, and doesn't even
  177. record what happened, but simply quits the user back to the BBS.  I
  178. haven't had an error from the door since I started running it almost 9
  179. months ago now, but I did write it, and I know how to set it up.  This
  180. is just a fail-safe mechanism, which I could only test by renaming a few
  181. key files, thus intentionally bringing it down.  I also tested every
  182. function with a completely blank data file (all users back to zero).  I
  183. think V 2.0 would have caused problems for users who did not have an
  184. existing stats file with 15 top users in EVERY category.  Anyway, this
  185. will work for sure, even if you're setting it up for the first time.
  186.  
  187. The midnight statistician (Logstats.run) now does not open a window of
  188. its own.  It prints out all the information to the calling CLI window.
  189. The BIG change with this one is the error-checking, which makes it
  190. extremely robust.  I check for EVERY file it needs, and if a file cannot
  191. be found, a DETAILED report which will be found in the BBSFILES
  192. directory as 'Logstats.errors' will tell you what the problem is.  I'll
  193. include further info about this later in the docs.
  194.  
  195. So, simply replace your three executables with the new ones.  You'll be
  196. so glad you did!
  197.  
  198.  
  199.  
  200. Version 2.0 or 2.6 --> 3.0
  201. --------------------------
  202.  
  203. This is THE version you've been waiting for.  It's in GFA-BASIC, and the
  204. speed increase is absolutely incredible!  No longer is it a pain-in-the
  205. neck to load in the data file.  On my system (225 users) it takes about
  206. 3/4 second!
  207.  
  208.  
  209. What you now DON'T need:
  210. ~~~~~~~~~~~~~~~~~~~~~~~
  211.  
  212. * Any run-library you may have
  213. * Any .bmap file
  214. * Any menu file
  215. * The file BBSFILES/logstats.start
  216.  
  217. (Naturally OTHER doors may need the run libraries and .bmap files, so
  218. don't delete them.  You can do away with logstats.start, however but you
  219. must add this to the config file...)
  220.  
  221.  
  222. What you need to do:
  223. ~~~~~~~~~~~~~~~~~~~~
  224.  
  225. * You will need to replace the door itself.
  226.  
  227. * The midnight stats gatherer program, logstats.run SHOULD be replaced.
  228. The old version will still work fine, but I think you'll find the GFA
  229. version is a LOT faster, and doesn't store unnecessary spaces in the
  230. data file, reducing its size by about 25%.
  231.  
  232. * You'll need to add 1 extra line to the statdoor.config file.  Load up
  233. the config into a text editor, and straight after the last line, type in
  234. the date you started running logstats.  The date can be up to 19
  235. characters long - any longer and it will be truncated to the first 19
  236. characters.
  237.  
  238. (After the starting date, you may like to press return a few times to
  239. make sure you don't get an 'End Of File' error.  If you are running the
  240. door without making this change to the config file, it will crash with
  241. an 'End-of-File' error very early on in the piece).
  242.  
  243.  
  244. Changes in this version:
  245. ~~~~~~~~~~~~~~~~~~~~~~~
  246.  
  247. It will open a screen the same size as your Metro screen (getting the
  248. values from your s:metro.config file).  This means if you have a PAL
  249. amiga, it will open a PAL screen.  It may also mean an NTSC amiga will
  250. not quite fit the 'Top 15' users on the screen at once, but you'll live.
  251. (I haven't checked this, but I remember it only just fitted into the
  252. AC-BASIC screen).  You won't be missing much locally, and it WILL fit on
  253. a 24 line terminal with no problems, so the USERS will be happy.  You'll
  254. only lose maybe the first line of the headers in any case).
  255.  
  256. Since GFA is just sooooo much faster than AC-BASIC, I no longer have to
  257. read in the usernames from your BBS into an array, the userlog is
  258. referenced and they are obtained from that.  As a result, the program
  259. will use a HEAP less memory than before.  Maybe you could even get this
  260. to run on a 1 meg machine, now, Percy!  It's worth a shot.  If it
  261. doesn't work off a main menu, try it from the doorhandler.
  262.  
  263. Another change is that if the door is run off the doorhandler, the ANSI
  264. setting is obtained from RAM:Doordata - so whatever they have for ANSI
  265. on the BBS will be used in the door.  If the door is run off a main BBS
  266. menu, we can't tell, so we have to ask the users.  If the door IS run
  267. off the dhandler, the user cannot change the ANSI setting, save for
  268. quitting back to the BBS, and changing it there, then returning to the
  269. door again!
  270.  
  271. The page-pause setting is also obtained from the BBS, and the door will
  272. default to whatever the users have set back on the BBS.
  273.  
  274. It's trickier to change your page pause setting...  in Percy's versions
  275. of Metro you'd need to change the page-pause setting, log off, and then
  276. call back! [Not in OzMetro, mind you]
  277.  
  278.  
  279. Version 1.0 or below --> 3.0
  280. ----------------------------
  281.  
  282. If you have a version of the door below 2.0 up and running, all you need
  283. to do is the above steps.  Also, since the menu is now internal to the
  284. code, you may DELETE these files from the door directory:
  285.  
  286.   StatDoor.menu.ans
  287.   StatDoor.menu.asc
  288.  
  289.  
  290. ----------------------------------------------------------------------------
  291. Files in the archive:
  292. ----------------------------------------------------------------------------
  293.  
  294. Door.exe           The DOOR program itself.
  295. Logstats           Actual program run from the midnight event scripts
  296. Logstats.doc       What you're now reading.
  297. LogstatsEd         Run this BEFORE you run the stats door the first time
  298.                    and also to edit the data file later.
  299. LogstatsEd.info    An icon for the editor.
  300. Logstats.script.ex Example script file to be used for calling Logstats.
  301. StatDoor.config    File with the weightings for the Top 50 Users, and
  302.                    the starting date.
  303. Logstats.lst       Source code for the program to run at midnight.
  304. StatDoor.lst       Source code for the door program.
  305. LogstatsEd.lst     Source code for the editor program.
  306.  
  307.  
  308. ----------------------------------------------------------------------------
  309. Features:
  310. ----------------------------------------------------------------------------
  311.  
  312. Logstats is probably the most comprehensive stats package available for
  313. ANY BBS system on any platform.  I've been looking around, and my users
  314. have all been patting me on the back for this one (so much so that I can
  315. hardly type - owww my shoulder!)
  316.  
  317. Oh, I should mention the Menu is now hot-keyed, in case you miss it.  It
  318. looks for a keypress after each line of the menu is printed, and if the
  319. key is a valid command it will execute that function.  If the keypress
  320. is NOT a valid command, it just totally ignores it.
  321.  
  322. The stat breakdowns available are:
  323.  
  324. Top Fifteens:
  325. ~~~~~~~~~~~~~
  326. Available are listings for the top 15 users in these categories:
  327.  
  328.   * Calls
  329.   * Public Messages
  330.   * Private Messages
  331.   * Downloads
  332.   * Uploads
  333.   * Door Entrances
  334.  
  335. The data output is in the following format:
  336.  
  337. ----  ------  -------------------------  --------  -----  -----------
  338. Rank  User #  Name                       Category  % All  Last Called
  339. ----  ------  -------------------------  --------  -----  -----------
  340.  
  341. These are self-explanatory except for perhaps the '% All', which is what
  342. percentage of overall BBS stats this user has accounted for.  For
  343. instance, I was amazed to find that I'd posted 47.76% of the private
  344. messages posted on my BBS since August 1990!
  345.  
  346.  
  347. Overall Lists:
  348. ~~~~~~~~~~~~~~
  349. Again, there is a list for each of these categories:
  350.  
  351.   * Calls
  352.   * Public Messages
  353.   * Private Messages
  354.   * Downloads
  355.   * Uploads
  356.   * Door Entrances
  357.  
  358. The data output is in the following format:
  359.  
  360. ------   -------------------------  --------  -----  -----------
  361. User #   Name                       Category  % All  Last Called
  362. ------   -------------------------  --------  -----  -----------
  363.  
  364.  
  365. Ratios:
  366. ~~~~~~~
  367. The ratio of certain things is available.  It is designed to see what
  368. sort of BBS activity each user is mainly interested in.  The highest 50
  369. ratios are sorted and output.  (If there ARE 50 users to output).
  370.  
  371. For instance on my BBS only 36 users have ever uploaded a file!  So the
  372. list only gives these top 36.  The others have zero uploads, so there's
  373. no point outputing 0 Uploads per call, is there???
  374.  
  375. Ratios are available comparing:
  376.  
  377. *  Public Messages  }
  378. *  Private Messages }
  379. *  Uploads          } <--- Per Call
  380. *  Downloads        }
  381. *  Doors/Games      }
  382.  
  383. If there are no stats for the users in the logstats file (for example a
  384. new user for today who hasn't had his stats collected by the midnight
  385. program), no value is given for the ratio.  (Well, it's got a value:
  386. zero!)
  387.  
  388. *  Uploads Per Downloads
  389.  
  390. The higher the ratio the better.  If the ratio is less than 1.0 they
  391. have downloaded more files than they have uploaded.
  392.  
  393. *  Public Messages Per Private Message
  394.  
  395. This is to see whether the user is more interested expressing himself
  396. publicly or privately.  I always prefer public messages, but my stat is
  397. really low in this area.  We have users on the BBS who, however, are
  398. definite extroverts and prefer to let everyone know their problems, with
  399. ratios of 4:1 or more!!
  400.  
  401. If no private messages have EVER been posted, no figure is given for
  402. this user.  (This doesn't happen very often, you know)!
  403.  
  404. *  Downloads Per Upload 
  405.  
  406. I added this to keep track of the main file leeches.  If a user has
  407. downloaded 1,000 files and uploaded 3, their ratio is going to be right
  408. up the top.  (The heading for this stat is 'Worst Downloaders!').
  409.  
  410. Yes, and I know you can't divide by zero, so if a user has downloaded
  411. 100 files and uploaded none, their ratio is given as 100 (Yeah, it's
  412. infinity, but this doesn't allow you to see who the WORST are).  For
  413. instance someone who has downloaded 1 file (maybe the membership
  414. application form), and uploaded none, is obviously not as bad a file
  415. leech as someone who has downloaded 50 files for no uploads.
  416.  
  417. Don't forget, if the ratio is less than 1.0, they have uploaded more
  418. files than they have downloaded, so the stat is not so bad.
  419.  
  420. The data output is in the following format:
  421.  
  422. ----  ------  -------------------------  ------  ------  -----
  423. Rank  User #  Name                       Thing1  Thing2  Ratio
  424. ----  ------  -------------------------  ------  ------  -----
  425.  
  426.  
  427. Full Database Display:
  428. ~~~~~~~~~~~~~~~~~~~~~~
  429. This is simply a raw database display (unsorted) for all users, for all
  430. stats.
  431.  
  432. The data output is in the following format:
  433.  
  434. -----  -------------------------  ------ ------ ------ ------ ------ -----
  435. User#  Name                       Calls  PubMsg PriMsg DnLoad UpLoad Doors
  436. -----  -------------------------  ------ ------ ------ ------ ------ -----
  437.  
  438. Top 50 Users:
  439. ~~~~~~~~~~~~~
  440. Here, the most active users of the BBS are given.  Each of the
  441. activities is totalled.  HOWEVER, you can set weights for how important
  442. you regard each activity in the StatDoor.config.  (See later for notes
  443. on this).
  444.  
  445. I have always been a great believer in message writing (public) as a
  446. major BBS activity, and so the weight for public messages on my system
  447. is a much higher value than for Door Playing.  But you may disagree with
  448. my weightings, so I've left it up to you to edit the config if you like.
  449.  
  450. If your BBS is more file oriented you will probably want to increase the
  451. weight given to the uploads.
  452.  
  453.  
  454. The data output is in the following format:
  455.  
  456. -- -----  ------------------------- ------ ------ ------ ------ ------ -----  
  457. No User#  Name                      Calls  PubMsg PriMsg DnLoad UpLoad Doors
  458. -- -----  ------------------------- ------ ------ ------ ------ ------ -----  
  459.  
  460.  
  461. Any User's Stats:
  462. ~~~~~~~~~~~~~~~~~
  463. Here are available the stored stats for each user and also the BBS
  464. totals as a whole (yeah, I know the BBS itself isn't really a user, but
  465. it fits into this section quite neatly.  (Besides, I ran out of room on
  466. the menu!).  To get stats on the BBS, enter 'BBS' as the username.
  467. (Weird concept, eh?)
  468.  
  469. The values given in this section go to about 5 decimal places which is a
  470. higher order of magnitude than those figures given in the Ratios, and
  471. other sections.
  472.  
  473. The output for the BBS Stats is like this:
  474.  
  475. Totals for <Your BBS Name as you enter into s:Metro.cfg>
  476.  
  477.           Calls           :
  478.           Public Messages :
  479.           Private Messages:
  480.           Downloads       :
  481.           Uploads         :
  482.           Games/Doors     :
  483.  
  484.           Public Messages Per Call  :
  485.           Private Messages Per Call :
  486.           Downloads Per Call        :
  487.           Uploads Per Call          :
  488.           Games/Doors Per Call      :
  489.           Pub Msgs Per Private Msg  :
  490.           Uploads Per Download      :
  491.  
  492.  
  493. Then, if you want details on an individual user you may enter either the
  494. UserNumber or UserName.  The number will be located more quickly, but if
  495. you type in the name, it will scan the list of users, and try to find a
  496. match.
  497.  
  498. The output for each user is in the following format:
  499.  
  500.           User Name       :
  501.           User Number     :
  502.           Date Last Called:
  503.  
  504.           Calls           :
  505.           Public Messages :
  506.           Private Messages:
  507.           Downloads       :
  508.           Uploads         :
  509.           Games/Doors     :
  510.  
  511.           Public Messages Per Call  :
  512.           Private Messages Per Call :
  513.           Downloads Per Call        :
  514.           Uploads Per Call          :
  515.           Games/Doors Per Call      :
  516.           Pub Msgs Per Private Msg  :
  517.           Uploads Per Download      :
  518.  
  519.  
  520. Comprehensive, eh? I think so, too!
  521.  
  522. ----------------------------------------------------------------------------
  523. Problems & What To Do:
  524. ----------------------------------------------------------------------------
  525.  
  526. This door is a little complex to setup, however make sure you read these
  527. docs very, very carefully if you run into troubles.  I will try to make
  528. it as simple and as clear as I possibly can.  Before panicking, and
  529. worrying why things don't run properly, investigate all the options open
  530. to you.
  531.  
  532. If you get an error message, note what it is.  Error messages will be
  533. found in requestors, CLI windows, and GFA-BASIC alerts.  If you get an
  534. error from the LogStats program itself, it will write you a DETAILED
  535. report in a file called BBS:BBSFiles/Logstats.errors.  Look for them,
  536. and MAKE NOTE OF THEM!
  537.  
  538. It will help if you also try to gain an idea of what was happening by
  539. seeing what the program was doing at the time.
  540.  
  541. There's no chance of an overflow in the stats now, as GFA allows
  542. integers of up to about 2,100,000,000!
  543.  
  544. If you are having troubles, you can write to me at my above PO Box, send
  545. me some Fido/AmigaNet/GlobalNet netmail or even call my BBS.  I will
  546. need detailed reports on what's going on.  I CAN NOT fix a problem when
  547. you simply tell me "I can't get LogStats to work".  I can.  But you
  548. can't.  Why?  I will need to know why, and you will have to give me
  549. clues.
  550.  
  551.  
  552. ----------------------------------------------------------------------------
  553. Setting Up - (Blank Data File)
  554. ----------------------------------------------------------------------------
  555.  
  556. Firstly let's look at how to generate a blank logstats file.  If you
  557. have been running the old version of Logstats, skip to the next section,
  558. as you will already have a stats file in your BBSFILES directory.  If
  559. this is the case, DO NOT UNDER ANY CIRCUMSTANCES run the generator
  560. section of the editor, unless you want to see all your old stats wiped
  561. back to zeroes!  LogstatsEd will warn you if you are about to do this.
  562.  
  563. The generator/editor for version 3.2 is now in GFA-BASIC, and has a full
  564. workbench interface with pull down menus and the like.  It's very easy
  565. to use now, and even has online help available from the Project menu.
  566. It's also in the vicinity of 8-10 times faster than the old version.
  567.  
  568. To generate a blank file you must run the program called LogstatsEd by
  569. either double-clicking its icon, or typing '<path>LogstatsEd' in the
  570. Shell.
  571.  
  572. NOTE WELL: DO NOT RUN THIS PROGRAM AT THE SAME TIME AS METRO!
  573.  
  574. There may be file conflicts.  Unlikely, but if you run a BBS you never
  575. know exactly what the users are going to do next!  Logstats opens a
  576. couple of Metro's files to get info from them, and I'd hate for someone
  577. to login on you, just as the editor has the userlog open, or something
  578. like that!
  579.  
  580. After LogstatsEd is running, select 'New Data File' from the Generate
  581. menu.
  582.  
  583. After warning you about what you are going to do (ie kill all your old
  584. stats - which is fine if you haven't got any), and warning you again if
  585. it detects an existing data file, the program then goes through and
  586. generates a file with zeroes in it for all the stats for all the users.
  587.  
  588. It will also create 'Logstats.oldhi'.  The 'oldhi' file is the number of
  589. users that Logstats has figures on, and so will be the same as the
  590. 'hiuser' file at the very beginning.  However, if a new user then logs
  591. in before midnight, Logstats will not have figures on him/her until the
  592. Logstats.run program is sent to work in the midnight event.  So do not
  593. alter the 'oldhi' file.
  594.  
  595. I think that just about covers it.  Real easy, really!  If you have any
  596. problems, there is online help available from the program itself.
  597.  
  598.  
  599. ----------------------------------------------------------------------------
  600. Setting Up  - The Door
  601. ----------------------------------------------------------------------------
  602.  
  603. You will need to set yourself up a door directory in the usual way.  See
  604. the Metro Docs for how to do this.  Let's say (as an example) it's setup
  605. as DOORFILES1/Door210.
  606.  
  607. Copy these files from the archive to that directory:
  608.  
  609.   Door.exe
  610.   StatDoor.config
  611.  
  612.  
  613. Door:
  614. ~~~~~
  615. This is the actual program the BBS runs when the users select the Stats
  616. Door from the Doors (or one of the Main BBS) Menu.
  617.  
  618.  
  619. Config:
  620. ~~~~~~~
  621. The StatDoor.config is the weighting you give to the various BBS
  622. activities for working out the Top 50 Users.  Either use mine as it
  623. stands, or load it into an editor and simply change the NUMBERS (not the
  624. text) in it.  I worked this out over a few days, but you may decide that
  625. a public message isn't all that important, or an upload is more
  626. important, and so on.  For safety's sake, keep the values between 0 and
  627. 9.  Preferably between 0 and 5!
  628.  
  629. Here's what my config looks like:
  630.  
  631. -----
  632.  
  633. Call Weight=
  634. 4
  635. PubMsg Weight=
  636. 5
  637. PriMsg Weight=
  638. 2
  639. Download Weight=
  640. 1
  641. Upload Weight=
  642. 3
  643. Door Weight=
  644. 2
  645. 1 August 1990
  646.  
  647. -------
  648.  
  649. Incidentally, this is also the format of the BBS:BBSFILES/logstats file:
  650. 6 numbers per line in this order, seperated by commas.  One line per
  651. user.  (IE:  Calls , PubMsgs , PriMsgs , DLoads , ULoads , Doors)
  652.  
  653. Please note the config file is checked extensively when being read into
  654. the door.  The left-hand 3 characters of the text lines are checked to
  655. ensure they ARE the correct item (IE the first thing the door reads in
  656. is the first line.  It looks at the first 3 characters, converts them to
  657. all uppercase and checks to see if it's 'CAL'.  If it's not, it reports
  658. that there is an error in the config, and aborts the door, leaving a
  659. message in the StatDoor.errors!  file.  It does this for each of the
  660. values in the config).
  661.  
  662. DON'T FORGET!!  - the last line in your config now needs to be the date
  663. you started running Logstats, so PLEASE add it in if you are upgrading
  664. from an earlier version.  If not, you'll get an 'End-of-file' error when
  665. the door runs.
  666.  
  667.  
  668. Menus:
  669. ~~~~~~
  670.  
  671. The menus make use of the IBM font, and you, too can get it running on
  672. your Amiga globally, replacing the horrible old Topaz font that comes
  673. standard.
  674.  
  675. What I do is have two fonts directories containing the IBM font set up.
  676. The first one is called IBM and in it is the file '8' which is the font
  677. itself.  I leave this one well alone for the other programs to use.
  678.  
  679. The other font directory is the same, but has a different name.  Let's
  680. say it's called 'PCFont'.  To get the Amiga to use this everywhere
  681. (including with Metro) you need to simply make use of the 'FF' command
  682. that comes on the workbench 1.3 (+) release.
  683.  
  684. In your startup-sequence, simply issue the command:
  685.  
  686.      FF PCfont.font
  687.  
  688. It should then say that the Topaz font has been replaced, and warn you
  689. that the font X or Y dimensions do not match.  I don't know why it does
  690. this, but I have been using it since the first GFA Metro version came
  691. out, and have never had problems from any application at all.  I am now
  692. looking at a nice smooth, round font in the editor.  Heaps better than
  693. topaz ever was!
  694.  
  695. If you should ever need to access the Topaz font, it will be now
  696. accesible as PCfont.  Basically, all FF does is to swap the two types
  697. around.  (And this is why you need two IBM font directories and fonts.
  698. Some programs do ask for the IBM.font, and if you only had 1 copy,
  699. they'd then be using what they call ibm.font, but what the system now
  700. calls topaz!!)
  701.  
  702.  
  703. ----------------------------------------------------------------------------
  704. Setting Up  - The Midnight Program
  705. ----------------------------------------------------------------------------
  706.  
  707. This is probably the tricky part, so please bear with us.  The logstats
  708. file needs to be updated regularly as new activities are carried out by
  709. the users, and the best way to do this is a by a program run in the
  710. midnight event.
  711.  
  712. The new version of Logstats now doesn't even open a window of its own.
  713. All messages from this program will be sent to the CLI window you ran
  714. Metro from.
  715.  
  716. The logstats.run in this archive is about 5 times faster than any
  717. previous release, and actually lets you know how it's going during the
  718. run.
  719.  
  720. There is now extensive checking for all the files the midnight program
  721. needs to access, and if they are not where they should be the program
  722. will abort and leave you a note.  You will find the note in your
  723. BBS:BBSFILES directory
  724.  
  725. Here are all the possible error messages from the midnight program:
  726.  
  727.  
  728. ------------------------------------------------------------------
  729. Logstats midnight program recording an error!
  730.  
  731. Please rectify the situation! We couldn't access a file somewhere!
  732.  
  733. Error code was 1
  734.  
  735. Your Metro.config was not located in the s: directory.
  736. Beats me how the BBS was running in any case!
  737.  
  738. [This one NEVER can happen under 3.4, so don't worry about it, I may
  739. have taken it out actually, come to think of it]
  740.  
  741. ------------------------------------------------------------------
  742. Logstats midnight program recording an error!
  743.  
  744. Please rectify the situation! We couldn't access a file somewhere!
  745.  
  746. Error code was 2
  747.  
  748. You have no 'hiuser' file in the BBSFILES directory.
  749. Any new user to login would now overwrite old users!
  750. You will need to create a file in BBSFILES with a text editor
  751. called 'hiuser'. This is a 1 line file with a number on it.
  752. The number to use can be calculated by dividing the size
  753. (in bytes) of BBSFILES/userlog by 125.
  754.  
  755. ------------------------------------------------------------------
  756. Logstats midnight program recording an error!
  757.  
  758. Please rectify the situation! We couldn't access a file somewhere!
  759.  
  760. Error code was 3
  761.  
  762. There is no 'logstats.oldhi' file in the BBSFILES directory.
  763. I think you'll need to run the generator program on this, although
  764. duplicating your 'hiuser' file to 'logstats.oldhi' MAY solve
  765. this problem. Ensure that this number matches the number of lines
  766. in the actual 'logstats' data file.
  767.  
  768. ------------------------------------------------------------------
  769. Logstats midnight program recording an error!
  770.  
  771. Please rectify the situation! We couldn't access a file somewhere!
  772.  
  773. Error code was 4
  774.  
  775. There is no 'logstats' file in the BBSFILES directory.
  776. You will need to generate one using the generator program,
  777. or find your backup copy and replace it.
  778.  
  779. ------------------------------------------------------------------
  780. Logstats midnight program recording an error!
  781.  
  782. Please rectify the situation! We couldn't access a file somewhere!
  783.  
  784. Error code was 5
  785.  
  786. There is no 'log' in the BBSFILES directory.
  787. Maybe it was real quiet today, eh? In any case, no stats could
  788. be updated, but this is not a fatal error. To get a logfile,
  789. just log in to Metro, or ensure another script you are running
  790. in the midnight event is NOT deleting it until AFTER you run
  791. this program. Otherwise how else can we get to the stats??
  792.  
  793.  
  794. So for frustrated users who can't get this to run, you'll now get a
  795. detailed explanation of what file couldn't be found, and some info on
  796. how to fix things up.  Just look for 'Logstats.errors' in your BBSFILES
  797. directory.
  798.  
  799.  
  800. New for 3.3:  The midnight program now takes an argument!
  801.  
  802. The usage is:
  803.  
  804.         LogStats <OutputFilename>
  805.  
  806.  
  807. NO inverted commas are needed (or indeed should be included) in the
  808. output filename.  Spaces are fine in BASIC filenames!  Especially
  809. considering I'm only looking for one part of the command line (the whole
  810. thing!)
  811.  
  812. Logstats.run will now generate one more file, once it's finished with
  813. the log.  The argument you provide on the command line is the filename
  814. the program will use.  If you don't include any argument, it WON'T
  815. produce the file.
  816.  
  817. Be careful that the argument you specify is a valid amiga filename (NOT
  818. a directory!!).  I don't check it too much, so if in doubt, don't use
  819. it!
  820.  
  821. So, I run the program now by going:
  822.  
  823.         BBS:midnight/Logstats BBS:Textfiles1/Text_505
  824.  
  825. in the logstats.script that is executed in the midnight event.
  826.  
  827. Notice the output filename was one of my textfiles?  This is how I
  828. envisage you'll use the option.  The file that Logstats produced for me
  829. when I just finished compiling V3.4 was:
  830.  
  831.  ---------------------------------------
  832.          Yesterday on this BBS:
  833.  ---------------------------------------
  834.    1 calls were accepted,
  835.    0 public messages were posted,
  836.    0 private messages were posted,
  837.    2 doors were entered,
  838.    0 files were uploaded, and
  839.    0 files were downloaded.
  840.  
  841.  ---------------------------------------
  842.          Overall System Records
  843.  ---------------------------------------
  844.  Most calls:             23 on 30-Oct-94
  845.  Most public messages:   30 on 16-Dec-91
  846.  Most private messages:  16 on 28-Dec-91
  847.  Most doors entered:      2 on 09-Dec-94
  848.  Most uploads:           10 on 21-Mar-92
  849.  Most downloads:        154 on 29-Jun-92
  850.  
  851. [Yes, it was the second run after I'd tested it once before and cleared
  852. the old log file, so the figures are LOW.  I also zeroed the record for
  853. the number of doors entered just as an experiment].
  854.  
  855. Now it's clear, eh?  Simply put this up as a textfile somewhere if you
  856. like.  Alternatively, set the filename to somewhere else, for your own
  857. private perusal.  If you use no argument in the call for logstats.run,
  858. it won't produce such a file at all - just update your stats figures.
  859. All your choice!  You'll find it's much nicer running LogStats WITH a
  860. filename, however because you get a textfile to use on the BBS, and a
  861. set of records for your BBS thrown in for free.
  862.  
  863.  
  864. ----------------------------------------------------------------------------
  865. Setting Up - Midnight Script
  866. ----------------------------------------------------------------------------
  867.  
  868. The real tricky thing, is you need to add a command to the Metro script
  869. to run the midnight program.  Okay, now start paying attention.
  870.  
  871. There are two scripts in question here.  Metro's script, and the
  872. Logstats script.  Metro's script (found in the BBSFILES directory) needs
  873. to have 1 line added to it like:
  874.  
  875.   execute BBS:Midnight/logstats.script
  876.  
  877. The reason why you need to EXECUTE a seperate script, and not add
  878. commands to Metro's script, is beacuse you cannot make use of the 'IF'
  879. statement from a Metro script - each statement is executed separately.
  880. So we simply 'cheat', and write our own.
  881.  
  882. The script I'm now using to run Logstats once a day looks a little like
  883. this:
  884.  
  885. -----------
  886. ; LogStats.script 1.2
  887. ;
  888. ; By Peter Deane
  889. ;
  890. ; last updated 9 December 1994 at 5:02 am
  891.  
  892. ECHO "Running LogStats"
  893. ECHO ""
  894.  
  895. BBS:midnight/Logstats BBS:Textfiles1/Text_505
  896.  
  897. Copy BBS:Textfiles1/Text_505 to BBS:BBSFILES/bye.asc
  898.  
  899. ECHO "LogStats completed"
  900. ECHO ""
  901.  
  902. -----------
  903.  
  904. There is one suggestion I have, if you haven't already done it:  make
  905. yourself a directory somewhere for your midnight scripts.  Then you'll
  906. always know where to find them.  Mine is called 'Midnight', and it's on
  907. the same device as the BBSFILES directory.
  908.  
  909. If you don't want a midnight directory, you'll have to figure out some
  910. other appropriate place to store Logstats and the script.  I'm sure
  911. you'll figure it out.
  912.  
  913. Notice that my LogStats text file is copied to the BBS:BBSFiles/bye.asc
  914. filename.  This means the screen you get when you logoff the board is
  915. the stats file.  This is completely optional - you might like your own
  916. "bye" file better than "Yesterday on this BBS".  If so, simply remove
  917. that line.  [I'm currently thinking of using the dropped carriers file
  918. for the bye screen, incidentally :-) ]
  919.  
  920. IMPORTANT:  DO *NOT* USE THE 'RUN' COMMAND TO LAUNCH LOGSTATS.  JUST
  921. ENTER IT AS AN INSTRUCTION AS SHOWN IN THE SCRIPT.  EVERYTHING LATER IN
  922. THE SCRIPT RELIES ON THIS TASK BEING FINISHED, AND IF YOU START A
  923. SEPARATE PROCESS FOR IT WITH THE RUN COMMAND, THE NEXT COMMANDS WILL
  924. START EXECUTING IMMEDIATELY.  THIS WILL CAUSE PROBLEMS!!!
  925.  
  926. When LogStats runs, it will read you BBS:BBSFILES/Log file and collate
  927. the statistics from it (updating its own data files), and write each
  928. line of your old log file to a new file called BBS:BBSFiles/Log.big.  It
  929. will then delete the original "log" file to prevent double-counting of
  930. statistics.
  931.  
  932. The Log.big file is simply a "container" for all your old logs, and it
  933. will probably pay to do something about removing it when it gets too
  934. big.  Once every three months I arc up my old log.big file and drop it
  935. over to floppy.  You could easily automate this, but I only do it 4
  936. times a year so it's probably not worth automating.
  937.  
  938. If you don't have a log.big file, then the first time you run logstats
  939. you'll get one.  If you DO have one, then yesterday's log is appended to
  940. the end of it.
  941.  
  942. If you haven't been running Logstats before, you might want to feed it
  943. your old log files so it can pull the stats out of them.  To do this,
  944. simply put your old log file(s) in BBSFiles and call them "log".  Run
  945. Logstats and it will then collect all your old stats into the stats
  946. file, and you can then proudly say your statistics go back (some time?)
  947.  
  948. Okay, once you get this script going, I'd say you're just about set to
  949. enjoy a trouble-free Statistical BBS for many years to come.  Just
  950. remember the author who has slaved away for hours at a time, listening
  951. to all your comments on how to fix things up :-)
  952.  
  953. Oh, yeah, there is one more thing:  The LogstatsEd does a lot more than
  954. generate blank data files.  Read on:
  955.  
  956.  
  957. ----------------------------------------------------------------------------
  958. Maintenance:  (in the LogstatsEd program)
  959. ----------------------------------------------------------------------------
  960.  
  961. This is the nice bit for those users who have been using Logstats for
  962. some time.  Naturally, it grew out of the need for me to do a mass-user
  963. purge by date, something I'd been putting off for a L-O-N-G time because
  964. I knew the Logstats files would have been all askew, and would have
  965. needed editing by hand in a text editor.
  966.  
  967. Computer programmers are said to be lazy people, and they'd rather write
  968. a program to do something than do it manually.  Damn right!!  But this
  969. one is elegant.
  970.  
  971. Run the LogstatsEd program by entering the command in the Shell, or
  972. double-clicking its icon.  Note the warning to not run the editor and
  973. Metro at the same time.  This goes double for when you are editing
  974. users' stats, as it needs the userlog a little more.  If Metro cannot
  975. access the userlog, it will crash.  Metro needs to access the userlog
  976. every time a user logs in and logs out.  So DON'T risk it!  Take the BBS
  977. down by and pull your phone off the hook.
  978.  
  979. The new editor/generator program is designed to be 100% user-proof.
  980. (That'll be the day!).  I don't think I can get it any easier to use
  981. now.  It knows if you have or haven't got a logstats data file.  If not,
  982. it won't let you edit it.  If you have, it will default to 'no' for
  983. generating a new file - taking a conscious two mouse-clicks on two
  984. requestors to overwrite the old one.
  985.  
  986. You'll notice a lot of ghosted menu options in LogstatsEd.  This is for
  987. possible future expansion, because it's a real pain to add menu entries
  988. IN BETWEEN existing ones.  Later...
  989.  
  990. Here are the options from within the maintenance section of the
  991. LogstatsEd program:
  992.  
  993.  
  994. Check Userlog & Clear Deleted Users
  995. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  996.  
  997. Use this option if you have done a Mass User Purge By Date.  It will go
  998. through the userlog, looking for cleared users, and set their values in
  999. the Logstats file back to zero.  All completely automatic.  Need I say
  1000. more?
  1001.  
  1002. Yes, I do - run this STRAIGHT AWAY after doing the Mass User Delete,
  1003. before someone logs in and fills up one of the blank slots!
  1004.  
  1005. You can use this section as many times as you want, even if you've only
  1006. deleted 1 user.  It will simply ensure that for any blank slot in your
  1007. userlog file, the corresponding logstats will be zero.
  1008.  
  1009.  
  1010. Edit One User
  1011. ~~~~~~~~~~~~~
  1012.  
  1013. This will simply allow you to alter any of the stats for any of the
  1014. users.  Once we have established which user you wish to edit, (and you
  1015. can enter the username or usernumber) then the stored stats are printed
  1016. up and you can edit these parameters:
  1017.  
  1018.       <C>alls      
  1019.       <P>ublic Msgs
  1020.       <S>ecret Msgs
  1021.       <D>ownloads        
  1022.       <U>ploads    
  1023.       <G>ames/Doors
  1024.       <R>eset ALL
  1025.  
  1026. <R>eset all just puts everything back to zero in one hit.  It saves work
  1027. having to enter '0' for ALL the individual sections.
  1028.  
  1029. The keypresses are hot-keyed, and any keypress that is not C, P, S, D,
  1030. U, G, R or Q will be ignored completely.
  1031.  
  1032. If you enter in one of the other valid letters, you can type in a value
  1033. for it.  I do absolutely NO checking on the values you enter.  You can
  1034. put in numbers from -2,100 million to +2,100 million if you like.  Make
  1035. sure you put in something sensible, though, please!  I convert the
  1036. values to ABS() now, this will actually PREVENT you from entering
  1037. negative figures.
  1038.  
  1039. Note that when you enter a new value for any of the figures, the old
  1040. value is presented on the input line for you to edit.  Don't forget!
  1041. Remember to delete the parts of the old value you are changing.
  1042.  
  1043. When you have finished altering the values, select <Q>uit and you will
  1044. be asked one question:  "Commit these changes to Disk?" If you want to
  1045. back out now, then that's fine.  The changes you made will disappear
  1046. like a re-initialised array.  If not, then the whole logstats file will
  1047. be saved out to disk, and you can return for more editing if you wish.
  1048.  
  1049. (This is where GFA would came to the rescue - it used to take a while to
  1050. drop out the entire stats file - GFA now makes real short work of it).
  1051.  
  1052. ----------------------------------------------------------------------------
  1053. The main points again:
  1054. ----------------------------------------------------------------------------
  1055.  
  1056. * The Door program is a normal OzMetro door, set it up as usual.  It
  1057. needs a StatDoor.config file in the door directory with it.
  1058.  
  1059. * BEFORE you run Logstats or the Stat Door, use LogStatsEd to generate a
  1060. blank data file.  Without one, WEIRD things will happen.
  1061.  
  1062. * Logstats needs to be run once a day in the Midnight Event (from the
  1063. BBS:BBSFiles/Script file).
  1064.  
  1065. * Logstats will now remove your old log file for you automatically (so
  1066. users of old versions may have to update their invocation scripts).
  1067.  
  1068. ----------------------------------------------------------------------------
  1069. Bye!
  1070. ----------------------------------------------------------------------------
  1071.  
  1072.